package com.wangsh.splider.system.service;

import java.util.Map;

import com.wangsh.splider.common.pojo.ApiResponse;
import com.wangsh.splider.common.util.PageInfoUtil;
import com.wangsh.splider.system.pojo.ASysClient;
import com.wangsh.splider.system.pojo.ASysCountry;
import com.wangsh.splider.system.pojo.ASysFile;
import com.wangsh.splider.system.pojo.ASysIp;

import com.wangsh.splider.system.pojo.ASysMailAccount;
import com.wangsh.splider.system.pojo.ASysWebSite;
import com.wangsh.splider.system.pojo.ASysWebUrl;
import com.wangsh.splider.system.pojo.ASysPro;
import com.wangsh.splider.system.pojo.ASysProxy;
import com.wangsh.splider.system.pojo.ASysShortUrl;

/**
 * 系统相关的模块Service
 * @author TeaBig
 */
public interface ISystemDbService
{
	/**
	 * 重新加载,或者初始化
	 */
	ApiResponse<Object> reloadSystem() ;
	
	/*----- 系统文件模块管理开始 -----*/
	/**
	 * 添加一条系统文件
	 * 
	 * @param sysFile
	 * @return
	 */
	ApiResponse<Object> saveOneSysFileService(ASysFile sysFile);
	
	/**
	 * 更新一条系统文件
	 * @param sysFile
	 * @return
	 */
	ApiResponse<Object> updateOneSysFileService(ASysFile sysFile);
	
	/**
	 * 更新一条系统文件,上传文件
	 * 
	 * @param sysFile
	 * @return
	 */
	ApiResponse<Object> updateOneSysFileService(ASysFile sysFile,Map<String, Object> paramsMap) throws Exception;

	/**
	 * 删除一条系统文件
	 * 
	 * @param sysFile
	 * @return
	 */
	ApiResponse<Object> deleteOneSysFileService(Map<String, Object> condMap);

	/**
	 * 查询多条系统文件
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysFile> findCondListSysFileService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条系统文件
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysFile> findOneSysFileService(Map<String, Object> condMap);
	/*----- 系统文件模块管理结束 -----*/
	
	/* == 系统配置操作开始 == */
	/**
	 * 添加一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> saveOneSysProService(ASysPro ASysPro);

	/**
	 * 更新一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> updateOneSysProService(ASysPro ASysPro);

	/**
	 * 删除一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> deleteOneSysProService(Map<String, Object> condMap);

	/**
	 * 查询多条系统配置
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysPro> findCondListSysProService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条系统配置
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysPro> findOneSysProService(Map<String, Object> condMap);
	/* == 系统配置操作结束 == */
	
	/*----- Country模块管理开始 -----*/
	/**
	 * 添加一条Country
	 * 
	 * @param demoCountry
	 * @return
	 */
	ApiResponse<Object> saveOneCountryService(ASysCountry country);

	/**
	 * 更新一条Country
	 * 
	 * @param demoCountry
	 * @return
	 */
	ApiResponse<Object> updateOneCountryService(ASysCountry country);

	/**
	 * 删除一条Country
	 * 
	 * @param demoCountry
	 * @return
	 */
	ApiResponse<Object> deleteOneCountryService(Map<String, Object> condMap);

	/**
	 * 查询多条Country
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysCountry> findCondListCountryService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	
	/**
	 * 查询一条Country
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysCountry> findOneCountryService(Map<String, Object> condMap);
	/*----- Country模块管理结束 -----*/
	/* == ip操作开始 == */
	/**
	 * 添加一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> saveOneSysIpService(ASysIp aSysIp);
	
	/**
	 * 更新一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> updateOneSysIpService(ASysIp aSysIp);

	/**
	 * 删除一条系统配置
	 * 
	 * @param SysPro
	 * @return
	 */
	ApiResponse<Object> deleteOneSysIpService(Map<String, Object> condMap);

	/**
	 * 查询多条系统配置
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysIp> findCondListSysIpService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);


	/**
	 * 查询一条系统配置
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysIp> findOneSysIpService(Map<String, Object> condMap);
	
	
	
	/* == ip操作结束 == */
	
	/* ==  ip_代理表操作开始  ==  */
	/**
	 * 添加一条ip代理
	 * 
	 * @param sysProxy
	 * @return
	 */
	ApiResponse<Object> saveOneSysProxyService(ASysProxy sysProxy);

	/**
	 * 更新一条ip代理
	 * 
	 * @param sysProxy
	 * @return
	 */
	ApiResponse<Object> updateOneSysProxyService(ASysProxy sysProxy);

	/**
	 * 删除一条ip代理
	 * 
	 * @param sysProxy
	 * @return
	 */
	ApiResponse<Object> deleteOneSysProxyService(Map<String, Object> condMap);

	/**
	 * 查询多条ip代理
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysProxy> findCondListSysProxyService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条ip代理
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysProxy> findOneSysProxyService(Map<String, Object> condMap);
	
	
	/* ==  ip_代理表操作结束  ==  */
	
	
	/*----- MailAccount模块管理开始 -----*/
	/**
	 * 添加一条MailAccount
	 * 
	 * @param demoMailAccount
	 * @return
	 */
	ApiResponse<Object> saveOneMailAccountService(ASysMailAccount account);

	/**
	 * 更新一条MailAccount
	 * 
	 * @param demoMailAccount
	 * @return
	 */
	ApiResponse<Object> updateOneMailAccountService(ASysMailAccount account);

	/**
	 * 删除一条MailAccount
	 * 
	 * @param demoMailAccount
	 * @return
	 */
	ApiResponse<Object> deleteOneMailAccountService(Map<String, Object> condMap);

	/**
	 * 查询多条MailAccount
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysMailAccount> findCondListMailAccountService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	
	/**
	 * 查询一条MailAccount
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysMailAccount> findOneMailAccountService(Map<String, Object> condMap);
	/*----- MailAccount模块管理结束 -----*/
	
		/*----- Clint模块管理开始 -----*/
	/**
	 * 添加一条Client
	 * @param client
	 * @return
	 */
	ApiResponse<Object> saveOneClientService(ASysClient client);

	/**
	 * 更新一条Client
	 *
	 * @param client
	 * @return
	 */
	ApiResponse<Object> updateOneClientService(ASysClient client);

	/**
	 * 删除一条Client
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<Object> deleteOneClientService(Map<String, Object> condMap);

	/**
	 * 查询多条Client
	 *
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysClient> findCondListClientService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条Client
	 *
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysClient> findOneClientService(Map<String, Object> condMap);
	
	/**
	 * 查询一条Client根据最老的攻击时间
	 *
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysClient> findOneClientByMinAttackService(Map<String, Object> condMap);
	/*----- Clint模块管理结束 -----*/


	/*----- 网站模块管理开始 -----*/
	/**
	 * 添加一条网站
	 * @param webSite
	 * @return
	 */
	ApiResponse<Object> saveOneWebSiteService(ASysWebSite webSite);

	/**
	 * 更新一条网站
	 *
	 * @param webSite
	 * @return
	 */
	ApiResponse<Object> updateOneWebSiteService(ASysWebSite webSite);

	/**
	 * 删除一条网站
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<Object> deleteOneWebSiteService(Map<String, Object> condMap);

	/**
	 * 查询多条网站
	 *
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysWebSite> findCondListWebSiteService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条网站
	 *
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysWebSite> findOneWebSiteService(Map<String, Object> condMap);
	/*----- 网站模块管理结束 -----*/


	/*----- 网站Url模块管理开始 -----*/
	/**
	 * 添加一条网站Url
	 *
	 * @param WebUrl
	 * @return
	 */
	ApiResponse<Object> saveOneWebUrlService(ASysWebUrl WebUrl);

	/**
	 * 更新一条网站Url
	 *
	 * @param WebUrl
	 * @return
	 */
	ApiResponse<Object> updateOneWebUrlService(ASysWebUrl WebUrl);

	/**
	 * 删除一条网站Url
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<Object> deleteOneWebUrlService(Map<String, Object> condMap);

	/**
	 * 查询多条网站Url
	 *
	 * @param pageInfoUtil
	 * @param
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysWebUrl> findCondListWebUrlService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);

	/**
	 * 查询一条网站Url
	 *
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysWebUrl> findOneWebUrlService(Map<String, Object> condMap);
	/*----- 网站Url模块管理结束 -----*/
	
	/*----- ShortUrl模块管理开始 -----*/
	/**
	 * 添加一条ShortUrl
	 * 
	 * @param demoShortUrl
	 * @return
	 */
	ApiResponse<Object> saveOneShortUrlService(ASysShortUrl shortUrl);

	/**
	 * 更新一条ShortUrl
	 * 
	 * @param demoShortUrl
	 * @return
	 */
	ApiResponse<Object> updateOneShortUrlService(ASysShortUrl shortUrl);

	/**
	 * 删除一条ShortUrl
	 * 
	 * @param demoShortUrl
	 * @return
	 */
	ApiResponse<Object> deleteOneShortUrlService(Map<String, Object> condMap);

	/**
	 * 查询多条ShortUrl
	 * 
	 * @param pageInfo
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysShortUrl> findCondListShortUrlService(PageInfoUtil pageInfoUtil , Map<String, Object> condMap);
	
	/**
	 * 查询一条ShortUrl
	 * 
	 * @param type
	 * @param condMap
	 * @return
	 */
	ApiResponse<ASysShortUrl> findOneShortUrlService(Map<String, Object> condMap);
	/*----- ShortUrl模块管理结束 -----*/
	
	
}
